import request from '@/utils/request'
import { API_CONFIG } from '@/api/config'

/**
 * 获取用户优惠券列表
 * @param {Object} params - 查询参数
 * @param {Number} params.pageNum - 页码
 * @param {Number} params.pageSize - 每页数量
 * @param {String} params.status - 优惠券状态 (0-未使用, 1-已使用, 2-已过期)
 * @returns {Promise}
 */
export function getUserCouponList(params = {}) {
  return request({
    url: '/fun/userCoupon/app/list',
    method: 'get',
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10,
      status: params.status,
      orgId: API_CONFIG.ORG_ID,
      ...params
    }
  })
}

/**
 * 获取优惠券详情
 * @param {Number} userCouponId - 用户优惠券ID
 * @returns {Promise}
 */
export function getCouponDetail(userCouponId) {
  return request({
    url: `/fun/conponList/app/${userCouponId}`,
    method: 'get'
  })
}

/**
 * 使用优惠券
 * @param {Number} userCouponId - 用户优惠券ID
 * @param {String} orderId - 订单号
 * @returns {Promise}
 */
export function useCoupon(userCouponId, orderId) {
  return request({
    url: `/fun/userCoupon/app/use/${userCouponId}`,
    method: 'post',
    data: {
      orderId: orderId,
      useTime: new Date().toISOString(),
      orgId: API_CONFIG.ORG_ID
    }
  })
}

/**
 * 获取可用优惠券数量
 * @returns {Promise}
 */
export function getAvailableCouponCount() {
  return request({
    url: '/fun/userCoupon/app/count',
    method: 'get'
  })
}

/**
 * 根据订单号查询已使用的优惠券
 * @param {String} orderNo - 订单号
 * @returns {Promise}
 */
export function getCouponByOrderNo(orderNo) {
  return request({
    url: '/fun/userCoupon/app/getByOrderNo',
    method: 'get',
    params: {
      orderNo: orderNo,
      orgId: API_CONFIG.ORG_ID
    }
  })
}